Skip to content

Fix weak_dispatch and explicit_conversion_dispatch in reference-returning overloads#13

Open
mingxwa wants to merge 1 commit intongcpp:mainfrom
mingxwa:user/mingxwa/ref-ret
Open

Fix weak_dispatch and explicit_conversion_dispatch in reference-returning overloads#13
mingxwa wants to merge 1 commit intongcpp:mainfrom
mingxwa:user/mingxwa/ref-ret

Conversation

@mingxwa
Copy link
Collaborator

@mingxwa mingxwa commented Mar 8, 2026

Fixes incorrect behavior in weak_dispatch and explicit_conversion_dispatch when handling reference-returning overloads.

Changes

  • Added operator T& and operator T&& to pro::details::converter, enabling implicit conversion to all valid reference types.
  • Introduced concept explicitly_convertible, built on std::reference_constructs_from_temporary semantics. A conservative fallback is provided for pre-C++23 compilers, which may reject some valid user-defined reference conversions.
  • Reworked pro::details::wildcard to reuse converter.
  • Updated pro::explicit_conversion_dispatch to correctly support reference conversions.
  • Added unit tests.

Resolves #11
Resolves #10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants